Method and apparatus for generating recommended changes to communication behaviors

ABSTRACT

In one embodiment, a method for generating a recommended change to a communication behavior of a first user of a network includes identifying a communication pattern in accordance with data extracted from communications collected in the network, wherein the data is associated with at least one of the first user and an endpoint other than the first user, and generating the recommended change based on the communication pattern, where the recommended change is to the communication behavior of the first user.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to network communications andrelates more particularly to techniques for generating recommendedchanges to communication behaviors.

With the proliferation of mobile communications and social media, it isoften difficult to determine the best way in which to contact a givenperson. For instance, that person may own multiple mobile communicationsdevices (e.g., a cellular phone, a tablet computer, a portable gamingdevice, etc.) and/or multiple social media accounts (e.g., socialnetworking accounts, blogging and microblogging accounts, personal websites, etc.). The person may favor certain ones of these devices and/oraccounts for communicating, but such preferences may not be known tosomeone trying to reach him.

In addition, users of mobile communications devices often fail to usetheir devices and associated services in the most cost efficient manner.For instance, many users of mobile communications devices choose theirdevices, service plans, or service providers based on the amount of airtime or data that they expect to consume. However, analysis of othermetrics (such as the people with whom the users most frequentlycommunicate) might ultimately identify a more cost effectivealternative.

SUMMARY

In one embodiment, a method for generating a recommended change to acommunication behavior of a first user of a network includes identifyinga communication pattern in accordance with data extracted fromcommunications collected in the network, wherein the data is associatedwith at least one of the first user and an endpoint other than the firstuser, and generating the recommended change based on the communicationpattern, where the recommended change is to the communication behaviorof the first user.

BRIEF DESCRIPTION OF THE DRAWINGS

The teaching of the present disclosure can be readily understood byconsidering the following detailed description in conjunction with theaccompanying drawings, in which:

FIG. 1 is a block diagram illustrating an exemplary packet network,configured according to embodiments of the current disclosure;

FIG. 2 illustrates a flowchart of a method for generating a suggestedchange to a user's communication behaviors; and

FIG. 3 is a high level block diagram of the change suggestion methodthat is implemented using a general purpose computing device.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures.

DETAILED DESCRIPTION

In one embodiment, the present disclosure is a method and apparatus forgenerating suggested changes to communication behaviors. Embodiments ofthe disclosure aggregate data extracted from network communications inorder to identify patterns of use. These patterns of use in turn areused to generate recommendations intended to help a user communicatemore efficiently (e.g., in a manner that reduces the time and/or costnecessary to communicate with another endpoint—e.g., another user,service, or application).

FIG. 1 is a block diagram depicting one example of a communicationsnetwork 100. The communications network 100 may be any type ofcommunications network, such as for example, a traditional circuitswitched network (e.g., a public switched telephone network (PSTN)) oran Internet Protocol (IP) network (e.g., an IP Multimedia Subsystem(IMS) network, an asynchronous transfer mode (ATM) network, a wirelessnetwork, a cellular network (e.g., 2G, 3G and the like), a long termevolution (LTE) network, and the like) related to the currentdisclosure. It should be noted that an IP network is broadly defined asa network that uses Internet Protocol to exchange data packets.Additional exemplary IP networks include Voice over IP (VoIP) networks,Service over IP (SoIP) networks, and the like.

In one embodiment, the network 100 may comprise a core network 102. Thecore network 102 may be in communication with one or more accessnetworks 120 and 122. The access networks 120 and 122 may include awireless access network (e.g., a WiFi network and the like), a cellularaccess network, a PSTN access network, a cable access network, a wiredaccess network and the like. In one embodiment, the access networks 120and 122 may all be different types of access networks, may all be thesame type of access network, or some access networks may be the sametype of access network and other may be different types of accessnetworks. The core network 102 and the access networks 120 and 122 maybe operated by different service providers, the same service provider ora combination thereof.

In one embodiment, the core network 102 may include an applicationserver (AS) 104 and a database (DB) 106. Although only a single AS 104and a single DB 106 are illustrated, it should be noted that any numberof application servers 104 or databases 106 may be deployed.

In one embodiment, the AS 104 may comprise a general purpose computer asillustrated in FIG. 3 and discussed below. In one embodiment, the AS 104may perform the methods and algorithms discussed below related toimproving the efficiency of network communications.

In one embodiment, the DB 106 may store contact information for users ofthe network 100. For example, the DB 106 may store cellular telephonenumbers, email addresses, social media profiles, and the like for eachuser. In addition, the DB may store information relating to services towhich the user is subscribed, including cellular telephone services,Internet services, gaming subscriptions, and social media services.

In one embodiment, the DB 106 may store various data and metricsextracted from network communications. For example, as data is extractedfrom the network communications, the data may be stored in the DB 106.The data may include information such as other endpoints (e.g., users,applications, or services) with whom a user most frequentlycommunicates, how much time a user spends using certain devices orsocial media accounts, how quick a user is to respond to communicationsreceived via certain devices or social media accounts, or the like. Thedata may then be aggregated and analyzed in order to improve theefficiency of users' network communications.

In one embodiment, the access network 120 may be in communication withone or more user endpoint devices (also referred to as “endpointdevices” or “UE”) 108 and 110. In one embodiment, the access network 122may be in communication with one or more user endpoint devices 112 and114.

In one embodiment, the user endpoint devices 108, 110, 112 and 114 maybe any type of endpoint device such as a desktop computer or a mobileendpoint device such as a cellular telephone, a smart phone, a tabletcomputer, a laptop computer, a netbook, an ultrabook, a tablet computer,a portable media device (e.g., an MP3 player), a gaming console, aportable gaming device, and the like. It should be noted that althoughonly four user endpoint devices are illustrated in FIG. 1, any number ofuser endpoint devices may be deployed.

It should be noted that the network 100 has been simplified. Forexample, the network 100 may include other network elements (not shown)such as border elements, routers, switches, policy servers, securitydevices, a content distribution network (CDN) and the like.

FIG. 2 illustrates a flowchart of a method 200 for generating asuggested change to a user's communication behaviors. In particular, themethod 200 generates recommendations that may aid a user in improvingthe efficiency of his communications if adopted. In one embodiment, themethod 200 may be performed by the AS 104 or a general purpose computingdevice as illustrated in FIG. 3 and discussed below.

The method 200 begins at step 202. At step 204, the application server104 collects network communications. The network communications mayinclude, for example, calls made on a cellular, IP, or circuit-switchednetwork, a short message service (SMS) message, a multimedia messageservice (MMS) message, an instant message (IM), an email, a social mediapost or entry (e.g., a blog entry or a message sent to another personvia a social networking application), or the like.

At step 206, application server 104 extracts data from the networkcommunications. In one embodiment, the extracted data comprises metadatarelating to the network communications. The metadata might include, fora given network communication, one or more of the following: the senderof the network communication, the recipient of the networkcommunication, the means by which the network communication was sent(e.g., the devices, services, and/or networks used), or the duration ofthe network communication. In one embodiment, the data does not includethe content of the network communication, in order to protect theprivacy of the users.

At step 208, the application server 104 aggregates the extracted data.In one embodiment, the aggregation step involves combining various dataextracted from multiple sources (e.g., multiple different user endpointdevices and/or other network devices) in order to generate summarystatistics. At step 210, the application server 104 identifiescommunication patterns in accordance with the aggregated data. Forinstance, the communication patterns may help to detect the frequencyanalytics and durations of the network communications. The frequencyanalytics and durations may in turn help to identify more specificpatterns. In one embodiment, the more specific patterns relate to thefrequency and/or duration of a particular network user's communicationswith in-network and out-of-network contacts. In another embodiment, themore specific patterns relate to the specific contacts with whom theparticular network user communicates most frequently or for the greatestamount of time (e.g., average duration of calls or collective durationof all calls). In another embodiment, the more specific patterns relateto the virtual or live groups or networks with whom the particularnetwork user communicates most frequently or for the greatest amount oftime. In another embodiment, the more specific patterns relate to themodes of communication (e.g., particular devices or accounts) via whicha particular network user is most responsive or to which a particularnetwork user responds most quickly. In a further embodiment, thespecific patterns may identify particular times of day associated with aparticular network user's responsiveness to a given mode ofcommunication. In a further embodiment still, the more specific patternsrelate to applications or services with which a particular network usermost frequently interacts (e.g., social networking web sites, mediastreaming services, etc.).

At step 212, the application server 104 generates a recommendation for aparticular network user, based on an analysis of the patterns identifiedin step 210. For example, the recommendation may involve suggesting thatthe particular network user change service providers, join a particularsocial media group or network, or subscribe to a particular service. Inanother embodiment, the recommendation may involve suggesting aparticular mode of communication (e.g., particular device or account) bywhich to communicate with a given contact at a given time. In oneembodiment, the recommendation is generated in response to sometriggering event. The triggering event may be a periodic event, such asthe close of a service billing cycle or the start of a new month.Alternatively, the triggering event may be a one-time event, such as theinitiation of a call to another user.

At step 214, the application server 104 presents the recommendation tothe particular network user. In one embodiment, the recommendationincludes supporting data such as statistical data on which therecommendation is based. For instance, if the recommendation is asuggestion that the particular network user change switch from cellularservice provider A to cellular service provider B based on the fact thatthe particular network user spends more time communicating withsubscribers to cellular service provider B's network, the supportingdata might include a tally of the minutes that the particular networkuser spent in the past month communicating with each service provider'ssubscribers. In a further embodiment, the recommendation includes anyadditional data that might be relevant to implementation of therecommendation (e.g., subscription costs, promotions, etc.). In oneembodiment, the recommendation is presented to the particular networkuser via at least one of: SMS, MMS, IM, email, or social networkmessage.

At optional step 216 (illustrated in phantom), the application server104 receives a selection from the particular network user in response tothe recommendation. In one embodiment, the particular network usereither accepts the recommendation or declines the recommendation. If theparticular network user declines the recommendation, then no furtheraction is necessary. The method 200 may thus return to step 204 and theapplication server 104 will continue to collect network communicationsfor analysis as described above. However, if the particular network useraccepts the recommendation, then the method 200 proceeds to optionalstep 218.

At optional step 218 (illustrated in phantom), the application server104 assists the particular network user in implementing therecommendation. For instance, the application server 104 may present(e.g., via any of the user endpoint devices 108-114) the particularnetwork user with an interface that allows the particular network userto subscribe to a recommended service or to send a communication to aparticular device. The method 200 then returns to step 204 and theapplication server 104 will continue to collect network communicationsfor analysis as described above.

As a result, the method 200 helps network users save money and time bypromoting efficient and cost effective communications. It also allowsnetwork users to visualize and appreciate the potential value ofaltering their current methods of communicating, without requiring thenetwork users to personally perform in-depth analyses of theircommunication habits.

It should be noted that although not explicitly specified, one or moresteps of the method 200 described above may include a storing,displaying and/or outputting step as required for a particularapplication. In other words, any data, records, fields, and/orintermediate results discussed in the methods can be stored, displayed,and/or outputted to another device as required for a particularapplication. Furthermore, steps or blocks in FIG. 2 that recite adetermining operation, or involve a decision, do not necessarily requirethat both branches of the determining operation be practiced. In otherwords, one of the branches of the determining operation can be deemed asan optional step.

Moreover, although certain operations are described as being performedby the application server 104 or by a user endpoint device 108-114, itshould be noted that in other embodiments, the operations may be handleddifferently. For instance, in one embodiment, the user endpoint devices108-114 may perform all steps of the method 200 with little or noassistance from the application server 104. Alternatively, theapplication server 104 may perform all steps of the method 200 withlittle or no assistance from the user endpoint devices 108-114.

As alluded to above, the method 200 may be implemented in a variety ofways to facilitate more efficient network communications. For instance,in one embodiment, the method 200 is implemented to determine the costsassociated with an out-of-network user's communications with in-networkusers. Generally, users of, for example, cellular phone service, areunaware of over which networks they spend most of their timecommunicating. Thus, the method 200 may determine what theout-of-network user's costs would have been if he had been an in-networkuser during these communications. If the costs would have been less ifhe had been an in-network user, the method 200 might suggest that hebecome an in-network user. The suggestion might further providepromotional rates or other information that would be pertinent to thetransition from out-of-network to in-network.

In another embodiment, the method 200 is implemented to determine whichcontacts should be included within a network user's “calling circle.”Calling circles are generally limited in size but allow the users toselect the members of the circle with whom the user can communicate at areduced rate. However, a user may unknowingly spend more timecommunicating with a contact outside of the circle than with one or morecontacts inside the circle. Thus, the method 200 could help the useridentify when his calling circle membership should be modified.

In another embodiment, the method 200 is implemented to determine whatvirtual or live groups a network user should join. In this context, a“virtual group” comprises group of people who socialize and interactonline (e.g., in multiplayer games, forums, chat rooms or on socialnetworking sites), but who do not necessarily socialize met offline orin person. A “live group” comprises a group of people who socialize orinteract offline or in person (e.g., in social clubs, professionalsocieties, or the like). For instance, the method 200 might determine,based on an analysis of the frequency and duration of the network user'ssocial networking activity, that he spends a lot of time communicatingwith a plurality of contacts who are all part of the same socialnetworking group. In this case, the method 200 might recommend that thenetwork user join the social networking group in order to communicatemore efficiently and more cost effectively with these contacts.

In another embodiment, the method 200 is implemented to determine how anetwork user can improve his gaming experience. For instance, the method200 might analyze the launch, duration, and network speeds of multiplegames on the same platform. Based on these metrics, the method 200 mightrecommend to network user that he should log onto the platform or shouldpurchase a game based on inventory and based on what his contacts areplaying. Moreover, if there are variances in Internet gaming dependingupon which console a network user uses, the method 200 might recommendthat the network user use a different console (e.g., the network usermost often plays on console X, but most of his contacts play games onconsole Y).

In another embodiment, the method 200 is implemented to determineservices to which a network user should subscribe. For instance, themethod 200 might detect that the network user is subscribed to a socialnetworking application but not to a microblogging application. In thiscase, the method 200 might analyze the amount of time that the networkuser spends communicating (via all modes of communication) with contactswho are subscribed to this social networking application and thismicroblogging application, regardless of who initiated thecommunication. Based on this analysis, the method 200 might recommendthat the network user subscribe to the microblogging application inorder to communicate more efficiently or cost effectively with hiscontacts. Further, the recommendation might include information allowingthe network user to subscribe to the microblogging application on atrial basis, at a reduced rate, or the like. In a further embodimentstill, the method 200 provide analytics on the frequency of use of eachmode of communication embedded within the social networking application.This would allow the social networking application to show the networkuser what percentages of his contacts are also using other specificsocial media applications, or what percentage of the network user'scommunications occur over each of the social media applications to whichhe is subscribed.

In another embodiment, the method 200 is implemented to determine themost efficient or effective way to reach a contact. For instance, agiven contact may have several communications devices (e.g., multiplecellular phones for personal and business use, a landline VoIP phone, atablet computer, etc.) and several social media accounts (e.g., socialnetworking, microblogging, etc.). However, method 200 may determinebased on the given contact's communication patterns that she respondsmore quickly to, for example, text messages sent to her personalcellular phone than to messages sent to her social networking account.The method 200 might also determine that these communication patternsare dependent on the time of day (e.g., the given contact responds mostquickly to text messages via personal cellular phone during weekday workhours, but responds most quickly to messages sent via her microbloggingaccount on weekends). In this case, the method 200 might recommend thata network user trying to communicate with this given contact on a Mondayafternoon by sending a text message to her personal cellular phone. In afurther embodiment, the recommendation might include an estimatedresponse time for messages sent to the given contact via various modes(e.g., various communications devices and social media accounts). In afurther embodiment still, the recommendation may account for calendaritems recorded in the given contact's calendar application (if she usesone).

In another embodiment, the recommendation generated by the method 200 isa suggestion to change the format of a communication. For instance,communication analytics may indicate that a given contact does notgenerally answer voice calls on her personal cellular phone during workhours, but responds relatively quickly to text messages during thistime. Thus, the recommendation may suggest that a voice message of anetwork user left for this given contact be converted to a text message.The method 200 may perform this conversion or may employ the assistanceof another network device in converting the format of the communication.

FIG. 3 depicts a high-level block diagram of a general-purpose computersuitable for use in performing the functions described herein. Thegeneral-purpose computer may be part of the application server 104 orone of the user endpoint devices 108-114 described above. As depicted inFIG. 3, the system 300 comprises a hardware processor element 302 (e.g.,a CPU), a memory 304, e.g., random access memory (RAM) and/or read onlymemory (ROM), a module 305 for generating recommended changes to auser's communication behaviors, and various input/output devices 306,e.g., storage devices, including but not limited to, a tape drive, afloppy drive, a hard disk drive or a compact disk drive, a receiver, atransmitter, a speaker, a display, a speech synthesizer, an output port,and a user input device (such as a keyboard, a keypad, a mouse, and thelike).

It should be noted that the present disclosure can be implemented insoftware and/or in a combination of software and hardware, e.g., usingapplication specific integrated circuits (ASIC), a general purposecomputer or any other hardware equivalents, e.g., computer readableinstructions pertaining to the method(s) discussed above can be used toconfigure a hardware processor to perform the steps of the abovedisclosed method. In one embodiment, the present module or process 305for generating recommended changes can be loaded into memory 304 andexecuted by hardware processor 302 to implement the functions asdiscussed above. As such, the present module 305 for generatingrecommended changes as discussed above in method 200 (includingassociated data structures) of the present disclosure can be stored on anon-transitory (e.g., tangible or physical rather than a propagatingsignal) computer readable storage medium, e.g., RAM memory, magnetic oroptical drive or diskette and the like.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred embodiment shouldnot be limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

What is claimed is:
 1. A method for generating a recommended change to acommunication behavior of a first user of a network, the methodcomprising: identifying, by an application server, a communicationpattern in accordance with data extracted from communications collectedin the network, wherein the data is associated with at least one of thefirst user and an endpoint other than the first user; and generating therecommended change to the communication behavior of the first user basedon the communication pattern.
 2. The method of claim 1, wherein thecommunication pattern is based at least in part on frequency analyticsassociated with the communications.
 3. The method of claim 1, whereinthe communication pattern is based at least in part on durationsassociated with the communications.
 4. The method of claim 1, whereinthe endpoint other than the first user is a second user, and thecommunication pattern is based at least in part on a responsiveness ofthe second user to communications received via a specific communicationdevice.
 5. The method of claim 1, wherein the endpoint other than thefirst user is a second user, and the communication pattern is based atleast in part on a responsiveness of the second user to communicationsreceived via a specific social media application.
 6. The method of claim1, wherein the endpoint other than the first user is a second user, andthe communication pattern is based at least in part on a responsivenessof the second user to communications received in a specific messageformat.
 7. The method of claim 1, wherein the endpoint other than thefirst user is a second user, and the recommended change suggests thatthe first user contact the second user via a particular type ofcommunication.
 8. The method of claim 1, wherein the endpoint other thanthe first user is a second user, and the recommended change suggeststhat the first user add the second user to a calling circle.
 9. Themethod of claim 1, wherein the endpoint other than the first user is asecond user, and the recommended change suggests that the first userchange a format of a message to be sent to the second user.
 10. Themethod of claim 1, further comprising: presenting the recommended changeto the first user.
 11. The method of claim 10, wherein the presentingfurther comprises: presenting data supporting the recommended change tothe first user, wherein the data comprises an aggregated subset of thedata extracted from the communications.
 12. The method of claim 10,wherein the presenting further comprises: presenting data pertinent toimplementing the recommended change to the first user.
 13. The method ofclaim 1, further comprising: implementing the recommended change onbehalf of the first user.
 14. The method of claim 1, wherein thecommunication pattern identifies a group of users with whom the firstuser communicates more frequently than the first user communicates withother users, and wherein the group of users includes at least a seconduser.
 15. The method of claim 1, wherein the communication patternidentifies a group of users with whom the first user communicates forlonger durations than the first user communicates with other users, andwherein the group of users includes at least a second user.
 16. Themethod of claim 1, wherein the recommended change suggests that thefirst user switch from a first service provider to a second serviceprovider.
 17. The method of claim 1, wherein the recommended changesuggests that the first user subscribe to a service, and wherein thesecond user subscribes to the service.
 18. The method of claim 1,wherein the recommended change suggests that the first user join avirtual group.
 19. A tangible computer readable medium containing anexecutable program for generating a recommendation to change acommunication behavior of a first user of a network, where the programperforms operations comprising: identifying a communication pattern inaccordance with data extracted from communications collected in thenetwork, wherein the data is associated with at least one of the firstuser and an endpoint other than the first user; and generating therecommended change to the communication behavior of the first user basedon the communication pattern.
 20. A system for generating a recommendedchange to a communication behavior of a first user of a network,comprising: a processor; and a computer readable medium containing anexecutable program that causes the processor to perform operationscomprising: identifying a communication pattern in accordance with dataextracted from communications collected in the network, wherein the datais associated with at least one of the first user and an endpoint otherthan the first user; and generating the recommended change to thecommunication behavior of the first user based on the communicationpattern.